package com.itheima.d08_typecast;

import java.util.ArrayList;
import java.util.Scanner;

/**
 * 目标：了解包装类的基本操作
 *    装箱： 基本数据类    ---》  引用数据类型
 *    拆箱： 引用数据类型  ---》   基本数据类
 */
public class Test {

    public static void main(String[] args) {
        int age = 18;

        //装箱方式一：直接赋值，自动装箱
        Integer ageObj  = age;  //推荐
        //装箱方式二：构造方法
        Integer ageObj2 = new Integer(age);
        //装箱方式三：静态方法
        Integer ageObj3 = Integer.valueOf(age);

        //拆箱方式一：直接赋值，自动拆箱
        age = ageObj;//推荐
        //拆箱方式二：成员方法
        int age2 = ageObj2.intValue();

        //场景：其他类型 和 字符串类型 互相转换 需求
        //场景1：字符串转换成其他数值类型
        String ageStr = "18";
        Integer ageNum = Integer.parseInt(ageStr);

        //场景2：其他数值类型转换成字符串
        String ageStr2 = ageNum + ""; //方式一
        String ageStr3 = String.valueOf(ageNum); //方式二
        String ageStr5 = Integer.toString(ageNum); //方式三


        ArrayList<Double> list = new ArrayList();
        list.add(99.5); //----> 自动装箱 ，Double d = new Double(99.5);
        double d = list.get(0); //Double 对象，拆箱成 double

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入年龄：");
        String ageString = sc.next();

        int ageNumber = Integer.parseInt(ageString);
        ageNumber++;

        System.out.println("年龄：" + ageNumber);


    }
}
